Semantic data models are utilized for a variety of purposes. A semantic data model formally describes, in a machine readable format, the structure and meaning of, and the rules for using, the information described by the data model. Based upon the semantic data model, software code, generally referenced as infrastructure code, may be generated. The infrastructure code may, in turn, be utilized to transmit the information described by the semantic data model across a variety of communication infrastructures. As such, the infrastructure code may be messaging system interface code. Additionally or alternatively, the infrastructure code may be utilized to persist and retrieve the information from a variety of data persistence infrastructures. In this instance, the infrastructure code may be database interface code. The computer language in which the infrastructure code is generated is generally dependent upon the computer language utilized for the communication infrastructure and/or the data persistence infrastructure.
Semantic data models may change over time. Semantic data models may change for various reasons including as a result of product development or of a change in a published standard with which the semantic data model is to comply. In an instance in which the semantic data model changes, the infrastructure code that is generated based upon the semantic data model must also be modified to take into account the changes to the semantic data model. The extent of the change to the semantic data model combined with the number of users of the semantic data model has a direct impact upon the amount of the infrastructure code that must be modified and retested. The modification and the retesting of the infrastructure code that is generated based upon the semantic data model are currently performed at least partially manually and generally create a substantial expense in terms of man hours, additional compute resources, etc.
By way of example, one semantic data model may be specified in OWL (Web Ontology Language), an extensible markup language (XML)-based language. Utilizing the Protégé graphical program, OWL-based ontological models may be created, read and modified. Based upon the resulting ontological model, rudimentary Java Bean infrastructure code may be generated, but database interface code, messaging system interface code or code in any other computer language is not generally generated by the Protégé graphical program. Instead, the software code that is generated based upon the ontological model is typically tied to a specific technology and/or a specific computer language. For example, in a system in which a data distribution system (DDS) has been chosen for messaging and a relation database system has been chosen for data storage, interface definition language (IDL) code may be manually created and a tool may then be utilized to generate the communication infrastructure software, such as in Java and C++, that interacts with the messaging system. Likewise, a tool may be utilized to generate the infrastructure code in a specific computer language that interacts with the database system. However, a change in the computer language, such as a result of a change in the communication infrastructure, the data persistence infrastructure or otherwise, may require the infrastructure code to be regenerated in a different computer language, often at substantial cost in terms of time and expense because a tool to generate in the different computer language may not be available.